New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DWARF2 unwind support #3
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(TARGET_EXCEPT_UNWIND_INFO) define. (or1k_except_unwind_info) use DWARF2 unwind info as default but support SJLJ if forced with --enable-sjlj-exceptions. * config/or1k/or1k-protos.h: (or1k_expand_pic_symbol_ref) removed unneeded ATTRIBUTE_UNUSED. (or1k_eh_return_handler_rtx) defined prototype (body in or1k.c). (or1k_return_addr_rtx) defined prototype (body in or1k.c). * config/or1k/or1k.c: (or1k_save_reg_p) save stack pointer when frame pointer is not saved. (or1k_save_reg_p) save registers used with eh_return. (or1k_expand_epilogue) do not restore link register if we are returning from eh_return. (or1k_expand_epilogue) apply EH stack adjustment to stack pointer. (or1k_eh_return_handler_rtx) eh_return should write to the link register. (or1k_return_addr_rtx) in the case of GOT the link register cannot be read after the prologue. in this case, use the stored link register from the stack frame. (or1k_frame_pointer_required) require FP in eh_return and when alloca is used. (TARGET_FRAME_POINTER_REQUIRED) define. * config/or1k/or1k.h: (INITIAL_FRAME_POINTER_OFFSET) not used, removed. (RETURN_ADDR_RTX) define. (EH_RETURN_REGNUM) define. use reg 23. (EH_RETURN_DATA_REGNO) define. use reg 25, 27, 29 and 31. (EH_RETURN_STACKADJ_RTX) define. (EH_RETURN_HANDLER_RTX) define.
skristiansson
referenced
this pull request
Oct 1, 2013
* tree-flow.h (ssa_undefined_value_p): Remove prototype. * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here. (warn_uninit, warn_uninitialized_vars, execute_early_warn_uninitialized, make_pass_early_warn_uninitialized): Move to tree-ssa-uninit.c. * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c (has_undefined_value_p): New. Pass dependant parts of ssa_undefined_value_p. (uninit_undefined_value_p): Use has_undefined_value_p. (warn_uninit, warn_uninitialized_vars, execute_early_warn_uninitialized, make_pass_early_warn_uninitialized): Move from tree-ssa.c * tree-ssa.h: Adjust prototypes 2013-09-17 Jan Hubicka <jh@suse.cz> PR middle-end/58329 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias to return NULL. * ipa.c (function_and_variable_visibility): Likewise. * ipa-profile.c (ipa_profile): Likewise. 2013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de> PR ipa/58398 * cgraph.c (cgraph_function_body_availability): Check for ifunc attribute, and don't inline the resolver in this case. 2013-09-17 Teresa Johnson <tejohnson@google.com> * coverage.c (get_coverage_counts): Add missing newline. 2013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> PR tree-optimization/58088 * fold-const.c (mask_with_trailing_zeros): New function. (fold_binary_loc): Make sure we don't recurse infinitely when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2. Use mask_with_trailing_zeros where appropriate. 2013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com> * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization of 'prev' var to get better distance estimation. 2013-09-17 Eric Botcazou <ebotcazou@adacore.com> * tree-inline.h (struct copy_body_data): Add transform_parameter. * tree-inline.c (is_parameter_of): New predicate. (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if a parameter has been remapped. (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF. (optimize_inline_calls): Initialize transform_parameter. (copy_gimple_seq_and_replace_locals): Likewise. (tree_function_versioning): Likewise. (maybe_inline_call_in_expr): Likewise. 2013-09-17 Nick Clifton <nickc@redhat.com> * config/msp430/msp430-protos.h: Add prototypes for new functions. * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for interrupt handlers. (is_attr_func): New function. (msp430_is_interrupt_func): New function. (is_naked_func): New function. (is_reentrant_func): New function. (is_critical_func): New function. (msp430_start_function): Add annotations for function attributes. (msp430_attr): New function. (msp430_attribute_table): New. (msp430_function_section): New function. (TARGET_ASM_FUNCTION_SECTION): Define. (msp430_builtin): New enum. (msp430_init_builtins): New function. (msp430_builtin_devl): New function. (msp430_expand_builtin): New function. (TARGET_INIT_BUILTINS): Define. (TARGET_EXPAND_BUILTINS): Define. (TARGET_BUILTIN_DECL): Define. (msp430_expand_prologue): Add support for naked, interrupt, critical and reentrant functions. (msp430_expand_epilogue): Likewise. (msp430_print_operand): Handle 'O' character. * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define NO_TRAMPOLINES. * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT, UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR. (pushm): Use a 'n' rather than an 'i' constraint. (msp_return): Add generation of the interrupt return instruction. (disable_interrupts): New pattern. (enable_interrupts): New pattern. (push_intr_state): New pattern. (pop_intr_state): New pattern. (bic_SR): New pattern. (bis_SR): New pattern. * doc/extend.texi: Document MSP430 function attributes and builtin functions. 2013-09-17 Richard Biener <rguenther@suse.de> PR tree-optimization/58432 * tree-loop-distribution.c (tree_loop_distribution): Also scan PHIs for outside loop uses and seed a partition from them. 2013-09-17 Bin Cheng <bin.cheng@arm.com> * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New. (restructure_reference): Call backtrace_base_for_ref. 2013-09-17 Alan Modra <amodra@gmail.com> PR target/57589 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11 patch. 2013-09-16 DJ Delorie <dj@redhat.com> * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate vregs location for RL78/G10. (rl78_expand_prologue): Avoid SEL on G10. (rl78_expand_epilogue): Likewise. (rl78_peep_movhi_p): Can't move a constant to memory in HImode. * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define __RL78_G10__ when appropriate. (ASM_SPEC): Pass -mg10 along to the assembler. * config/rl78/rl78.md (sel_rb): Disable for G10. * config/rl78/rl78.opt: Add -mg10 option. * config/rl78/t-rl78: Add -mg10 multilib. 2013-09-16 Xinliang David Li <davidxl@google.com> * tree-if-conv.c (main_tree_if_conversion): Check new flag. * omp-low.c (omp_max_vf): Ditto. (expand_omp_simd): Ditto. * tree-vectorizer.c (vectorize_loops): Ditto. (gate_vect_slp): Ditto. (gate_increase_alignment): Ditto. * tree-ssa-pre.c (inhibit_phi_insertion): Ditto. * tree-ssa-loop.c (gate_tree_vectorize): Ditto. (gate_tree_vectorize): Name change. (tree_vectorize): Ditto. (pass_vectorize::gate): Call new function. (pass_vectorize::execute): Ditto. opts.c: O3 default setting change. (finish_options): Check new flag. * doc/invoke.texi: Document new flags. * common.opt: New flags. 2013-09-16 Andreas Schwab <schwab@linux-m68k.org> * doc/tm.texi.in (Cond Exec Macros): Remove node. (Condition Code): Don't reference it. * doc/tm.texi: Regenerate. 2013-09-16 Vladimir Makarov <vmakarov@redhat.com> PR middle-end/58418 * lra-constraints.c (undo_optional_reloads): Consider all optional reload even if it did not get a hard reg. 2013-09-16 Teresa Johnson <tejohnson@google.com> * dumpfile.c (dump_loc): Remove newline emission. * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline emission to dump_printf_loc calls where missing. (vect_mark_for_runtime_alias_test): Ditto. (vect_analyze_data_ref_dependence): Ditto. (vect_analyze_data_ref_dependences): Ditto. (vect_slp_analyze_data_ref_dependence): Ditto. (vect_slp_analyze_data_ref_dependences): Ditto. (vect_compute_data_ref_alignment): Ditto. (vect_update_misalignment_for_peel): Ditto. (vect_verify_datarefs_alignment): Ditto. (vector_alignment_reachable_p): Ditto. (vect_get_data_access_cost): Ditto. (vect_enhance_data_refs_alignment): Ditto. (vect_find_same_alignment_drs): Ditto. (vect_analyze_data_refs_alignment): Ditto. (vect_analyze_group_access): Ditto. (vect_analyze_data_ref_access): Ditto. (vect_analyze_data_ref_accesses): Ditto. (vect_prune_runtime_alias_test_list): Ditto. (vect_analyze_data_refs): Ditto. (vect_create_addr_base_for_vector_ref): Ditto. (vect_create_data_ref_ptr): Ditto. (vect_grouped_store_supported): Ditto. (vect_grouped_load_supported): Ditto. * value-prof.c (check_counter): Ditto. (check_ic_target): Ditto. * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto. (vect_recog_widen_mult_pattern): Ditto. (vect_recog_widen_sum_pattern): Ditto. (vect_recog_over_widening_pattern): Ditto. (vect_recog_widen_shift_pattern): Ditto. (vect_recog_rotate_pattern): Ditto. (vect_recog_vector_vector_shift_pattern): Ditto. (vect_recog_divmod_pattern): Ditto. (vect_recog_mixed_size_cond_pattern): Ditto. (vect_recog_bool_pattern): Ditto. (vect_pattern_recog_1): Ditto. (vect_pattern_recog): Ditto. * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto. (vect_is_simple_iv_evolution): Ditto. (vect_analyze_scalar_cycles_1): Ditto. (vect_get_loop_niters): Ditto. (vect_analyze_loop_1): Ditto. (vect_analyze_loop_form): Ditto. (vect_analyze_loop_operations): Ditto. (vect_analyze_loop_2): Ditto. (vect_analyze_loop): Ditto. (report_vect_op): Ditto. (vect_is_slp_reduction): Ditto. (vect_is_simple_reduction_1): Ditto. (vect_get_known_peeling_cost): Ditto. (vect_estimate_min_profitable_iters): Ditto. (vect_model_reduction_cost): Ditto. (vect_model_induction_cost): Ditto. (get_initial_def_for_induction): Ditto. (vect_create_epilog_for_reduction): Ditto. (vectorizable_reduction): Ditto. (vectorizable_induction): Ditto. (vectorizable_live_operation): Ditto. (vect_loop_kill_debug_uses): Ditto. (vect_transform_loop): Ditto. * tree-vect-stmts.c (vect_mark_relevant): Ditto. (vect_stmt_relevant_p): Ditto. (process_use): Ditto. (vect_mark_stmts_to_be_vectorized): Ditto. (vect_model_simple_cost): Ditto. (vect_model_promotion_demotion_cost): Ditto. (vect_model_store_cost): Ditto. (vect_get_store_cost): Ditto. (vect_model_load_cost): Ditto. (vect_get_load_cost): Ditto. (vect_init_vector_1): Ditto. (vect_get_vec_def_for_operand): Ditto. (vect_finish_stmt_generation): Ditto. (vectorizable_call): Ditto. (vectorizable_conversion): Ditto. (vectorizable_assignment): Ditto. (vectorizable_shift): Ditto. (vectorizable_operation): Ditto. (vectorizable_store): Ditto. (vectorizable_load): Ditto. (vectorizable_condition): Ditto. (vect_analyze_stmt): Ditto. (vect_transform_stmt): Ditto. (vect_is_simple_use): Ditto. * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto. (vect_can_advance_ivs_p): Ditto. (vect_update_ivs_after_vectorizer): Ditto. (vect_do_peeling_for_loop_bound): Ditto. (vect_gen_niters_for_prolog_loop): Ditto. (vect_update_inits_of_drs): Ditto. (vect_create_cond_for_alias_checks): Ditto. * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto. (vect_build_slp_tree_1): Ditto. (vect_supported_load_permutation_p): Ditto. (vect_analyze_slp_instance): Ditto. (vect_analyze_slp): Ditto. (vect_make_slp_decision): Ditto. (vect_detect_hybrid_slp): Ditto. (vect_bb_vectorization_profitable_p): Ditto. (vect_slp_analyze_bb_1): Ditto. (vect_update_slp_costs_according_to_vf): Ditto. (vect_get_mask_element): Ditto. (vect_transform_slp_perm_load): Ditto. (vect_schedule_slp_instance): Ditto. (vect_schedule_slp): Ditto. (vect_slp_transform_bb): Ditto. * profile.c (read_profile_edge_counts): Ditto. (compute_branch_probabilities): Ditto. * coverage.c (get_coverage_counts): Ditto. 2013-09-16 Diego Novillo <dnovillo@google.com> * tree-core.h: Add missing comment lines from refactoring of tree.h. 2013-09-16 Jan Hubicka <jh@suse.cz> * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept abstract functions; for static functions check the presence of body. 2013-09-16 James Greenhalgh <james.greenhalgh@arm.com> * config/aarch64/aarch64-simd-builtins.def (fma): New. * config/aarch64/aarch64-simd.md (aarch64_mla_elt<mode>): New. (aarch64_mla_elt_<vswap_width_name><mode>): Likewise. (aarch64_mls_elt<mode>): Likewise. (aarch64_mls_elt_<vswap_width_name><mode>): Likewise. (aarch64_fma4_elt<mode>): Likewise. (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise. (aarch64_fma4_elt_to_128v2df): Likewise. (aarch64_fma4_elt_to_64df): Likewise. (fnma<mode>4): Likewise. (aarch64_fnma4_elt<mode>): Likewise. (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise. (aarch64_fnma4_elt_to_128v2df): Likewise. (aarch64_fnma4_elt_to_64df): Likewise. * config/aarch64/iterators.md (VDQSF): New. * config/aarch64/arm_neon.h (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation. (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise. 2013-09-16 James Greenhalgh <james.greenhalgh@arm.com> * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New. (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise. (aarch64_mul3_elt_to_128df): Likewise. (aarch64_mul3_elt_to_64v2df): Likewise. * config/aarch64/iterators.md (VEL): Also handle DFmode. (VMUL): New. (VMUL_CHANGE_NLANES) Likewise. (h_con): Likewise. (f): Likewise. * config/aarch64/arm_neon.h (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation. 2013-09-16 James Greenhalgh <james.greenhalgh@arm.com> * config/aarch64/arm_neon.h (vcvtx_high_f32_f64): Fix parameters. 2013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de> Uros Bizjak <ubizjak@gmail.com> * config/alpha.c: Include tree-ssanames.h. 2013-09-16 Richard Biener <rguenther@suse.de> * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd. (dot_rdg_1): Handle control_dd. (create_edge_for_control_dependence): New function. (create_rdg_edges): Add control dependences if asked for. (build_rdg): Likewise. (generate_loops_for_partition): If there are not necessary control stmts remove all their dependencies. (collect_condition_stmts, rdg_flag_loop_exits): Remove. (distribute_loop): Pass on control dependences. (tree_loop_distribution): Compute control dependences and remove restriction on number of loop nodes. 2013-09-16 Jakub Jelinek <jakub@redhat.com> * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early for internal calls. 2013-09-16 Richard Sandiford <rdsandiford@googlemail.com> * cse.c (try_const_anchors): Punt on CC modes. 2013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de> * config/vax/constraints.md (T): Add missing CONSTANT_P check. 2013-09-14 John David Anglin <danglin@gcc.gnu.org> PR target/58382 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC calls to word_mode. 2013-09-14 Iain Sandoe <iain@codesourcery.com> PR target/48094 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is seen. (darwin_objc1_section): Likewise. (darwin_file_end): Emit Image Info section when required. 2013-09-14 Jan Hubicka <jh@suse.cz> * tree-into-ssa.c (gate_into_ssa): New. (pass_data_build_ssa): Use it. * cgraph.h (expand_thunk): Update prototype. * cgraphunit.c (analyze_function): Expand thunks early. (expand_thunk): Fix DECL_CONTEXT of reust_decl; build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN; set lowered flag; do not add new function. (assemble_thunks_and_aliases): Update. * tree-ssa.c (gate_init_datastructures): New gate. (pass_data_init_datastructures): Use it. 2013-09-14 Iain Sandoe <iain@codesourcery.com> PR target/58269 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the xmm register set described in the psABI. 2013-09-13 Evgeny Gavrin <e.gavrin@samsung.com> * dwarf2out.c (should_emit_struct_debug): Add check for type_decl variable is not NULL. 2013-09-13 Jacek Caban <jacek@codeweavers.com> * config.gcc: Use new winnt-c.c target hooks * config/t-winnt: New file * config/winnt-c.c: New file * doc/tm.texi.in: Document new hook * doc/tm.texi: Regenerated 2013-09-13 Jan Hubicka <jh@suse.cz> PR middle-end/58094 * ipa-inline.c (check_callers): New function. (check_caller_edge): Remove. (want_inline_function_to_all_callers_p): Also permit alises that are called dirrectly. (inline_to_all_callers): Terminate the walk when devirtualization introduce new calls. 2013-09-13 Jan Hubicka <jh@suse.cz> * ipa-inline-analysis.c (struct growth_data): Add node. (do_estimate_growth_1): Fix detection of recursion. 2013-09-13 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/58392 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable to avoid shadowing of outer loop variable. If saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops, replace_by_duplicate_decl simduid of loops that have it set and set dest_cfun->has_simduid_loops and/or dest_cfun->has_force_vect_loops. * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx instead of maybe_lookup_decl. * tree-inline.c (copy_loops): Change blocks_to_copy argument to id. Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive call. Copy over force_vect and copy and remap simduid. Set cfun->has_simduid_loops and/or cfun->has_force_vect_loops. (copy_cfg_body): Remove blocks_to_copy argument. Use id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops caller. Don't set cfun->has_simduid_loops and/or cfun->has_force_vect_loops here. (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body caller. (expand_call_inline, tree_function_versioning): Adjust copy_body callers. 2013-09-13 Martin Jambor <mjambor@suse.cz> PR bootstrap/58388 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in the assert if the edge was a speculative one. 2013-09-13 Richard Biener <rguenther@suse.de> * tree-data-ref.h (known_dependences_p): Move here ... * tree-loop-distribution.c (known_dependences_p): ... from here. (dump_rdg_component, debug_rdg_component): Remove. (dump_rdg): Adjust. (generate_loops_for_partition): Use gimple_uid instead of relying on matching stmt visit order. (rdg_build_partitions): Take starting stmt vector. (ldist_gen): Merge into ... (distribute_loop): ... this function. Do not compute starting vertices vector. * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs. 2013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative. Set type attribute correctly. Set predicable_short_it attribute. (cmpsi_shiftsi): Remove %? from output template. 2013-09-13 Richard Biener <rguenther@suse.de> * tree-loop-distribution.c (struct rdg_component, rdg_defs_used_in_other_loops_p, free_rdg_components, rdg_build_components): Remove. (stmts_from_loop): Do not record virtual PHIs. (generate_loops_for_partition): Skip virtual PHIs. (build_rdg_partition_for_component): Rename to ... (build_rdg_partition_for_vertex): ... this and adjust. (rdg_build_partitions): Take a vector of starting vertices instead of components. Remove unnecessary leftover handling. (ldist_gen): Do not build components or record other stores. (distribute_loop): Do not distribute loops containing stmts with side-effects. 2013-09-13 Christian Bruel <christian.bruel@st.com> PR target/58314 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads. 2013-09-13 Kai Tietz <ktietz@redhat.com> * config.gcc: Separate cases for mingw and cygwin targets, and add 64-bit cygwin target case. * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't dll-export inline-functions. * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise. 2013-09-13 Jeff Law <law@redhat.com> PR middle-end/58387 Revert: 2013-09-06 Jeff Law <law@redhat.com> * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate edge implied equivalences into successor phis. 2013-09-12 DJ Delorie <dj@redhat.com> * config/rl78/rl78-virt.md: Change from | to \; for asm line separators. 2013-09-12 Brooks Moses <bmoses@google.com> PR driver/42955 * Makefile.in: Do not install driver binaries in $(target)/bin. 2013-09-12 DJ Delorie <dj@redhat.com> * config/rl78/rl78.opt (mrelax): New. * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas. * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld. * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy between SP and FP. (rl78_expand_epilogue): Likewise. 2013-09-12 Vladimir Makarov <vmakarov@redhat.com> PR middle-end/58335 * lra-eliminations.c (remove_reg_equal_offset_note): New. (eliminate_regs_in_insn): Rewrite frame pointer to hard frame pointer elimination with using remove_reg_equal_offset_note. 2013-09-12 DJ Delorie <dj@redhat.com> * config/msp430/: New port. * config.gcc (msp430): Added. * doc/invoke.texi: Document MSP430 options. * doc/install.texi: Document msp430-elf * doc/md.texi: Document msp430-elf * doc/contrib.texi: Document msp430-elf * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to PSImode. 2013-09-12 Martin Jambor <mjambor@suse.cz> PR ipa/58389 * ipa-prop.c (remove_described_reference): Give up if the edge in the reference descriptor is NULL. (ipa_edge_removal_hook): If owning a reference descriptor, set its edge to NULL. 2013-09-12 Andrew MacLeod <amacleod@redhat.com> * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def, num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes. * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name, make_temp_ssa_name): move to tree-ssanames.h * tree-ssa-alias.h: Move prototype. * tree-ssa.h: Include tree-ssanames.h. * tree-ssanames.c (FREE_SSANAMES): Move to here. * tree-ssanames.h: New. Move items from tree-flow*.h * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES. 2013-09-12 Richard Biener <rguenther@suse.de> PR tree-optimization/58404 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also propagate non-invariant addresses into dereferences wrapped in component references. 2013-09-12 Richard Biener <rguenther@suse.de> PR tree-optimization/58402 * passes.def: Move pass_late_warn_uninitialized later. 2013-09-12 Andrew MacLeod <amacleod@redhat.com> * tree-ssa.h: New. Move content from tree-flow.h and tree-flow-inline.h. * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h. Move prototypes belonging to tree-ssa.c. * tree-flow-inline.h (redirect_edge_var_map_def, redirect_edge_var_map_result, redirect_edge_var_map_location): Move to tree-ssa.h. * gimple.h: Adjust prototypes. * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move to... * gimple.c (useless_type_conversion_p, types_compatible_p): Here. * tree.h: Move prototype to tree-ssa.h. * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h. * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies. * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c, cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c, ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c, gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c, graphite-blocking.c, graphite-clast-to-gimple.c, graphite-dependences.c, graphite-interchange.c, graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c, ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa-utils.c, loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c, lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c, passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c, tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c, tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c, tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c, tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c, tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c, tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c, value-prof.c, var-tracking.c, varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h 2013-09-12 Richard Biener <rguenther@suse.de> PR tree-optimization/58396 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs. (build_rdg): Take a loop-nest parameter, fix memleaks. (distribute_loop): Compute loop-nest here and pass it to build_rdg. 2013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com> * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE for SLM. 2013-09-12 Cameron McInally <cameron.mcinally@nyu.edu> * doc/extend.texi: Fix errors in x86 FMA builtin naming. The FMA instruction names should have a 'v' prefix. 2013-09-12 Richard Biener <rguenther@suse.de> * tree-loop-distribution.c (dot_rdg_1): Make graph prettier. (dot_rdg): Use popen instead of system in optional code. (remaining_stmts, upstream_mem_writes): Remove global bitmaps. (already_processed_vertex_p): Adjust. (has_anti_or_output_dependence, predecessor_has_mem_write, mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes, rdg_flag_uses): Remove. (rdg_flag_vertex): Simplify. (rdg_flag_vertex_and_dependent): Rely on a correct RDG and remove recursion. (build_rdg_partition_for_component): Process the first vertex of a component only. (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes. 2013-09-12 Alan Modra <amodra@gmail.com> * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand. 2013-09-11 DJ Delorie <dj@redhat.com> Nick Clifton <nickc@redhat.com> * config/rl78/predicates.md (rl78_cmp_operator_signed): New. (rl78_stack_based_mem): New. * config/rl78/constraints.md (Iv08): New. (Iv16): New. (Iv24): New. (Is09): New. (Is17): New. (Is25): New. (ISsi): New. (IShi): New. (ISqi): New. * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands. (movhi): Likewise. (movsi): Change from expand to insn-and-split. (ashrsi3): Clobber AX. (lshrsi3): New. (ashlsi3): New. (cbranchsi4): New. * config/rl78/rl78.md (CC_REG): Fix. (addsi3): Allow memory and immediate operands. (addsi3_internal): Split into... (addsi3_internal_virt): ...new, and ... (addsi3_internal_real): ...new. (subsi): New. (subsi3_internal_virt): New. (subsi3_internal_real): New. (mulsi3): Add memory operand. (mulsi3_rl78): Likewise. (mulsi3_g13): Likewise. * config/rl78/rl78-real.md (cbranchqi4_real_signed): New. (cbranchqi4_real): Add more constraint options. (cbranchhi4_real): Expand pattern. (cbranchhi4_real_signed): New. (cbranchhi4_real_inverted): New. (cbranchsi4_real_lt): New. (cbranchsi4_real_ge): New. (cbranchsi4_real_signed): New. (cbranchsi4_real): New. (peephole2): New. * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for constant shifts. (lshrsi3_virt): Likewise. (ashlsi3_virt): Likewise. (cbranchqi4_virt_signed): New. (cbranchhi4_virt_signed): New. (cbranchsi4_virt): New. * config/rl78/rl78.c: Whitespace fixes throughout. (move_elim_pass): New. (pass_data_rl78_move_elim): New. (pass_rl78_move_elim): New. (make_pass_rl78_move_elim): New. (rl78_devirt_info): Run devirt earlier. (rl78_move_elim_info): New. (rl78_asm_file_start): Register it. (rl78_split_movsi): New. (rl78_as_legitimate_address): Allow virtual base registers when appropriate. (rl78_addr_space_convert): Remove spurious debug stuff. (rl78_print_operand_1): Add z,s,S,r,E modifiers. (rl78_print_operand): More cases for not printing '#'. (rl78_expand_compare): Remove most of the logic. (content_memory): New. (clear_content_memory): New. (get_content_index): New. (get_content_name): New. (display_content_memory): New. (update_content): New. (record_content): New. (already_contains): New. (insn_ok_now): Re-recog insns with virtual registers. (add_postponed_content_update): New. (process_postponed_content_update): New. (gen_and_emit_move): New. (transcode_memory_rtx): Record new location content. Use gen_and_emit_move. (force_into_acc): New. (move_to_acc): Use gen_and_emit_move. (move_from_acc): Likewise. (move_acc_to_reg): Likewise. (move_to_x): Likewise. (move_to_hl): Likewise. (move_to_de): Likewise. (rl78_alloc_physical_registers_op1): Record location content. (has_constraint): New. (rl78_alloc_physical_registers_op2): Record location content. Optimize use of HL. (rl78_alloc_physical_registers_ro1): Likewise. (rl78_alloc_physical_registers_cmp): Likewise. (rl78_alloc_physical_registers_umul): Likewise. (rl78_alloc_address_registers_macax): New. (rl78_alloc_physical_registers): Initialize and set location content memory as needed. (rl78_reorg): Make sure split2 is called. (rl78_rtx_costs): New. 2013-09-11 Richard Sandiford <rdsandiford@googlemail.com> * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary for (not (neg ...)) and (neg (not ...)) cases. 2013-09-11 Richard Biener <rguenther@suse.de> PR middle-end/58377 * passes.def: Split critical edges before late uninit warning passes. * tree-cfg.c (pass_split_crit_edges): Implement clone method. 2013-09-11 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/58385 * fold-const.c (build_range_check): If both low and high are NULL, use omit_one_operand_loc to preserve exp side-effects. 2013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M. 2013-09-11 Richard Biener <rguenther@suse.de> * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr, create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices, stmts_from_loop, known_dependences_p, build_empty_rdg, build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ... * tree-loop-distribution.c: ... here. * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS, RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS, RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type, struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ... * tree-loop-distribution.c: ... here. * tree-loop-distribution.c: Include gimple-pretty-print.h. (struct partition_s): Add loops member. (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex, rdg_flag_vertex_and_dependent, rdg_flag_loop_exits, build_rdg_partition_for_component, rdg_build_partitions): Adjust. 2013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com> Maxim Kuznetsov <maxim.kuznetsov@intel.com> Sergey Lega <sergey.s.lega@intel.com> Anna Tikhonova <anna.tikhonova@intel.com> Ilya Tocar <ilya.tocar@intel.com> Andrey Turetskiy <andrey.turetskiy@intel.com> Ilya Verbin <ilya.verbin@intel.com> Kirill Yukhin <kirill.yukhin@intel.com> Michael Zolotukhin <michael.v.zolotukhin@intel.com> * config/i386/constraints.md (k): New. (Yk): Ditto. * config/i386/i386.c (const regclass_map): Add new mask registers. (dbx_register_map): Ditto. (dbx64_register_map): Ditto. (svr4_dbx_register_map): Ditto. (ix86_conditional_register_usage): Squash mask registers if AVX512F is disabled. (ix86_preferred_reload_class): Disable constants for mask registers. (ix86_secondary_reload): Do spill of mask register using 32-bit insn. (ix86_hard_regno_mode_ok): Support new mask registers. (x86_order_regs_for_local_alloc): Ditto. * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update. (FIXED_REGISTERS): Add new mask registers. (CALL_USED_REGISTERS): Ditto. (REG_ALLOC_ORDER): Ditto. (VALID_MASK_REG_MODE): New. (FIRST_MASK_REG): Ditto. (LAST_MASK_REG): Ditto. (reg_class): Add MASK_EVEX_REGS, MASK_REGS. (MAYBE_MASK_CLASS_P): New. (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS. (REG_CLASS_CONTENTS): Ditto. (MASK_REGNO_P): New. (ANY_MASK_REG_P): Ditto. (HI_REGISTER_NAMES): Add new mask registers. * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG, MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new mask registers. (attribute "type"): Add mskmov, msklog. (attribute "length_immediate"): Support them. (attribute "memory"): Ditto. (attribute "prefix_0f"): Ditto. (*movhi_internal): Support new mask registers. (*movqi_internal): Ditto. (define_split): Split out clobber pattern is a logic insn on mask registers. (*k<logic><mode>): New. (*andhi_1): Extend to support mask regs. (*andqi_1): Extend to support mask regs. (kandn<mode>): New. (define_split): Split and-not to and and not if operands are not mask regs. (*<code><mode>_1): Separate HI mode to new pattern... (*<code>hi_1): This. (*<code>qi_1): Extend to support mask regs. (kxnor<mode>): New. (kortestzhi): Ditto. (kortestchi): Ditto. (kunpckhi): Ditto. (*one_cmpl<mode>2_1): Remove HImode and handle it... (*one_cmplhi2_1): ...Here, now with mask registers support. (*one_cmplqi2_1): Support new mask registers. (HI/QImode arithmetics splitter): Don't split if mask registers are used. (HI/QImode not splitter): Ditto. * config/i386/predicated.md (mask_reg_operand): New. (general_reg_operand): Ditto. 2013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com> * doc/invoke.texi: Document fxsr, xsave and xsaveopt options. * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins. 2013-09-10 Jeff Law <law@redhat.com> PR tree-optimization/58380 * tree-ssa-threadupdate.c (thread_block): Recognize another case of threading through a buried loop header. * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct return value for single successor case. 2013-09-10 Jan Hubicka <jh@suse.cz> * ipa-devirt.c (ipa_devirt): Enable with LTO. 2013-09-10 Richard Earnshaw <rearnsha@arm.com> PR target/58361 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to support conditional execution. (combine_vcvt_f64_<FCVTI32typename>): Likewise. 2013-09-10 Vladimir Makarov <vmakarov@redhat.com> * lra.c (lra): Clear lra_optional_reload_pseudos before every constraint pass. * lra-constraints.c (curr_insn_transform): Switch on optional reloads. Check destination too to check move insn. (undo_optional_reloads): Add check that the original peudo did not changed its allocation and the optional reload was inherited on last inheritance pass. Break loop after deciding to keep optional reload. (lra_undo_inheritance): Add check that inherited pseudo still in memory. 2013-09-10 James Greenhalgh <james.greenhalgh@arm.com> * config/aarch64/aarch64.md (generic_sched): New. * config/aarch64/aarch64-generic.md (load): Make conditional on generic_sched attribute. (nonload): Likewise. 2013-09-10 Jan Hubicka <jh@suse.cz> * lto-cgraph.c: Include ipa-utils.h. (compute_ltrans_boundary): Also add possible targets into the boundary. 2013-09-10 Jan Hubicka <jh@suse.cz> * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real VAR_DECL of vtable rather than full expression. 2013-09-10 Jan Hubicka <jh@suse.cz> Paolo Carlini <paolo.carlini@oracle.com> * cgraphunit.c (analyze_functions): Save input_location, set it to UNKNOWN_LOCATION and restore it at the end. 2013-09-10 Martin Jambor <mjambor@suse.cz> * ipa-cp.c (propagate_constants_topo): Do not ignore SCC represented by a thunk. 2013-09-10 Jeff Law <law@redhat.com> PR tree-optimization/58343 * tree-ssa-threadupdate.c (thread_block): Identify and disable jump threading requests through loop headers buried in the middle of a jump threading path. * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko in return value/type. 2013-09-10 Jakub Jelinek <jakub@redhat.com> PR rtl-optimization/58365 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if it differs. 2013-09-10 Richard Biener <rguenther@suse.de> * tree-data-ref.h (build_rdg): Drop all parameters but loop. * tree-data-ref.c (create_rdg_vertices): Collect all data references, signal failure to the caller, use data-ref API. (build_rdg): Compute data references only once. Maintain lifetime of data references and data dependences from within RDG. (free_rdg): Free dependence relations. * tree-loop-distribution.c (rdg_flag_uses): Drop weird code inventing extra dependences. (distribute_loop): Update for RDG API changes. 2013-09-10 Kai Tietz <ktietz@redhat.com> * doc/invoke.texi (fms-extensions): Document changed behavior for ms-abi targets. * config/i386/i386.c (ix86_option_override_internal): Set default value of option -fms-extension for ms-abi targets. 2013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com> * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation. 2013-09-10 Alan Modra <amodra@gmail.com> PR target/58330 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems. 2013-09-10 Alan Modra <amodra@gmail.com> * config/rs6000/predicates.md (add_cint_operand): New. (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand. * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset using add_cint_operand. (largetoc_high_plus_aix): Likewise. 2013-09-09 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/58364 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on BOOLEAN_TYPE, only invert in_p and continue with arg0 if the current range can't be an unconditional true or false. 2013-09-09 James Greenhalgh <james.greenhalgh@arm.com> * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type. 2013-09-09 Uros Bizjak <ubizjak@gmail.com> * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align. 2013-09-09 Paolo Carlini <paolo.carlini@oracle.com> PR c++/43452 * doc/invoke.texi (-Wdelete-incomplete): Document it. 2013-09-09 Ian Bolton <ian.bolton@arm.com> * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return NO_REGS for immediate that can't be moved directly into FP_REGS. 2013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for comparison with negated operand. * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical RTL form. 2013-09-09 Richard Biener <rguenther@suse.de> PR middle-end/58326 * cfgloopmanip.c (fix_bb_placements): When fixing the placement of a subloop record all its block as affecting loop-closed SSA form. 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com> * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead of an rtx/bitpos pair. (store_fixed_bit_field): Update accordingly. 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com> * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of GEN_INT. * builtins.c (expand_errno_check): Likewise. * dwarf2cfi.c (init_return_column_size): Likewise. * except.c (sjlj_mark_call_sites): Likewise. * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise. * lra-constraints.c (emit_inc): Likewise. * ree.c (combine_set_extension): Likewise. * regmove.c (fixup_match_2): Likewise. * reload1.c (inc_for_reload): Likewise. 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com> * combine.c (simplify_set, expand_field_assignment, extract_left_shift) (force_to_mode, simplify_shift_const_1, simplify_comparison): Use gen_int_mode with the mode of the associated simplify_* call. * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise. * expmed.c (expand_shift_1): Likewise. * function.c (instantiate_virtual_regs_in_insn): Likewise. * loop-iv.c (iv_number_of_iterations): Likewise. * loop-unroll.c (unroll_loop_runtime_iterations): Likewise. * simplify-rtx.c (simplify_binary_operation_1): Likewise. 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com> * asan.c (asan_clear_shadow): Use gen_int_mode with the mode of the associated expand_* call. (asan_emit_stack_protection): Likewise. * builtins.c (round_trampoline_addr): Likewise. * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise. * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod) (emit_store_flag): Likewise. * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1) (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1): Likewise. * function.c (instantiate_virtual_regs_in_insn): Likewise. * ifcvt.c (noce_try_store_flag_constants): Likewise. * loop-unroll.c (unroll_loop_runtime_iterations): Likewise. * modulo-sched.c (generate_prolog_epilog): Likewise. * optabs.c (expand_binop, widen_leading, expand_doubleword_clz) (expand_ctz, expand_ffs, expand_unop): Likewise. 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com> * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode of the associated gen_rtx_* call. * caller-save.c (init_caller_save): Likewise. * combine.c (find_split_point, make_extraction): Likewise. (make_compound_operation): Likewise. * dwarf2out.c (mem_loc_descriptor): Likewise. * explow.c (plus_constant, probe_stack_range): Likewise. * expmed.c (expand_mult_const): Likewise. * expr.c (emit_single_push_insn_1, do_tablejump): Likewise. * reload1.c (init_reload): Likewise. * valtrack.c (cleanup_auto_inc_dec): Likewise. * var-tracking.c (adjust_mems): Likewise. * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT rather than gen_rtx_fmt_ee. 2013-09-09 Jan Hubicka <jh@suse.cz> PR middle-end/58294 * value-prof.c (gimple_ic): Copy also abnormal edges. 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com> * asan.c (asan_shadow_cst): Use gen_int_mode. 2013-09-08 Jan Hubicka <jh@suse.cz> * ipa-profile.c: Add toplevel comment. (ipa_propagate_frequency_1): Be more conservative when profile is read. (contains_hot_call_p): New function. (ipa_propagate_frequency): Set frequencies based on counts when profile is read. * predict.c (compute_function_frequency): Use PROFILE_READ gueard for profile; do not tamper with profile after inlining if it is read. 2013-09-08 Jan Hubicka <jh@suse.cz> * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case speculative edges. 2013-09-08 Jan Hubicka <jh@suse.cz> * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA summary generation. 2013-09-08 Jeff Law <law@redhat.com> PR bootstrap/58340 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization of 'found'. 2013-09-08 Andi Kleen <ak@linux.intel.com> * tree-inline.c (estimate_num_insns): Limit asm cost to 1000. 2013-09-08 Jan Hubicka <jh@suse.cz> * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update. 2013-09-08 Richard Sandiford <rdsandiford@googlemail.com> * ira.c (update_equiv_regs): Only call set_paradoxical_subreg for non-debug insns. * lra.c (new_insn_reg): Take the containing insn as a parameter. Only modify lra_reg_info[].biggest_mode if it's non-debug insn. (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update accordingly. 2013-09-08 Jan Hubicka <jh@suse.cz> * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible targets and devirtualize to BUILT_IN_UNREACHABLE. * timevar.def (TV_IPA_UNREACHABLE): New timevar. * ipa.c (walk_polymorphic_call_targets): New function. (symtab_remove_unreachable_nodes): Use it; do not keep all virtual functions; use the new timevar. * ipa-devirt.c (maybe_record_node): Do not insert static nodes that was removed from the program. (record_binfo): If BINFO corresponds to an anonymous namespace, we may not consider it in the walk when its vtable is dead. (possible_polymorphic_call_targets_1): Pass anonymous flag to record_binfo. (devirt_variable_node_removal_hook): New function. (possible_polymorphic_call_targets): Also register devirt_variable_node_removal_hook. (ipa_devirt): Do not do non-speculative devirtualization. (gate_ipa_devirt): One execute if devirtualizing speculatively. 2013-09-08 Jan Hubicka <jh@suse.cz> * cgraph.h (varpool_node_hook, varpool_node_hook_list, varpool_add_node_removal_hook, varpool_add_variable_insertion_hook, varpool_remove_variable_insertion_hook): Declare. * varpool.c (varpool_node_hook_list): New structure. (first_varpool_node_removal_hook, first_varpool_variable_insertion_hook): New variables. (varpool_add_node_removal_hook, varpool_remove_node_removal_hook, varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook, varpool_remove_variable_insertion_hook, varpool_call_variable_insertion_hooks): New functions. (varpool_remove_node): Use it. 2013-09-08 Paolo Carlini <paolo.carlini@oracle.com> PR c++/54941 * diagnostic.c (diagnostic_build_prefix): When s.file is "<built-in>" don't output line and column numbers. 2013-09-06 Jan Hubicka <jh@suse.cz> * cgraphunit.c (expand_thunk): Get body before touching arguments. * lto-streamer-out.c: Stream thunks, too. * lto-streamer-in.c (input_function): Pop cfun here (lto_read_body): Instead of here. 2013-09-06 Caroline Tice <cmtice@google.com> * doc/install.texi: Add documentation for the --enable-vtable-verify and the --disable-libvtv configure options. 2013-09-06 Jeff Law <law@redhat.com> * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate edge implied equivalences into successor phis. 2013-09-06 Joern Rennecke <joern.rennecke@embecosm.com> * resource.c (mark_referenced_resources): Handle COND_EXEC. 2013-09-06 Claudiu Zissulescu <claziss@synopsys.com> * resource.c (mark_target_live_regs): Compute resources taking into account if a call is predicated or not. 2013-09-06 Eric Botcazou <ebotcazou@adacore.com> * toplev.c (output_stack_usage): Be prepared for suffixes created by the compiler in the function names. 2013-09-06 Jan Hubicka <jh@suse.cz> PR middle-end/58094 * ipa-inline.c (has_caller_p): New function. (want_inline_function_to_all_callers_p): Use it. (sum_callers, inline_to_all_callers): Break out from ... (ipa_inline): ... here. 2013-09-06 Jan Hubicka <jh@suse.cz> * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid only when AVX is enabled. 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com> * config/aarch64/aarch64.md (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type is fpsimd_<load/store>2. (load_pair<mode>): Likewise. (store_pair<mode>): Likewise. 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com> * config/arm/types.md (type): Add "mrs" type. * config/aarch64/aarch64.md (aarch64_load_tp_hard): Make type "mrs". * config/arm/arm.md (load_tp_hard): Make type "mrs". * config/arm/cortex-a15.md: Update with new attributes. * config/arm/cortex-a5.md: Update with new attributes. * config/arm/cortex-a53.md: Update with new attributes. * config/arm/cortex-a7.md: Update with new attributes. * config/arm/cortex-a8.md: Update with new attributes. * config/arm/cortex-a9.md: Update with new attributes. * config/arm/cortex-m4.md: Update with new attributes. * config/arm/cortex-r4.md: Update with new attributes. * config/arm/fa526.md: Update with new attributes. * config/arm/fa606te.md: Update with new attributes. * config/arm/fa626te.md: Update with new attributes. * config/arm/fa726te.md: Update with new attributes. 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com> * config/aarch64/aarch64.md (*movti_aarch64): Use "multiple" for type where v8type is "move2". (*movtf_aarch64): Likewise. * config/arm/arm.md (thumb1_movdi_insn): Use "multiple" for type where more than one instruction is used for a move. (*arm32_movhf): Likewise. (*thumb_movdf_insn): Likewise. 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com> * config/arm/types.md (type): Rename fcpys to fmov. * config/arm/vfp.md (*arm_movsi_vfp): Rename type fcpys as fmov. (*thumb2_movsi_vfp): Likewise (*movhf_vfp_neon): Likewise (*movhf_vfp): Likewise (*movsf_vfp): Likewise (*thumb2_movsf_vfp): Likewise (*movsfcc_vfp): Likewise (*thumb2_movsfcc_vfp): Likewise * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Replace type mov_reg with fmovs. * config/aarch64/aarch64.md (*movsi_aarch64): Replace type mov_reg with fmovs. (*movdi_aarch64): Likewise (*movsf_aarch64): Likewise (*movdf_aarch64): Likewise * config/arm/arm.c (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV. * config/arm/iwmmxt.md (*iwmmxt_movsi_insn): Rename type fcpys as fmov. * config/arm/arm1020e.md: Update with new attributes. * config/arm/cortex-a15-neon.md: Update with new attributes. * config/arm/cortex-a5.md: Update with new attributes. * config/arm/cortex-a53.md: Update with new attributes. * config/arm/cortex-a7.md: Update with new attributes. * config/arm/cortex-a8-neon.md: Update with new attributes. * config/arm/cortex-a9.md: Update with new attributes. * config/arm/cortex-m4-fpu.md: Update with new attributes. * config/arm/cortex-r4f.md: Update with new attributes. * config/arm/marvell-pj4.md: Update with new attributes. * config/arm/vfp11.md: Update with new attributes. 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com> * config/aarch64/aarch64.md (*madd<mode>): Fix type attribute. (*maddsi_uxtw): Likewise. (*msub<mode>): Likewise. (*msubsi_uxtw): Likewise. (<su_optab>maddsidi4): Likewise. (<su_optab>msubsidi4): Likewise. 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com> * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>. * config/arm/arm.md (core_cycles): Remove fdiv. * config/arm/vfp.md: (*sqrtsf2_vfp): Update for attribute changes. (*sqrtdf2_vfp): Likewise. * config/aarch64/aarch64.md: (sqrt<mode>2): Update for attribute changes. * config/arm/arm1020e.md: Update with new attributes. * config/arm/cortex-a15-neon.md: Update with new attributes. * config/arm/cortex-a5.md: Update with new attributes. * config/arm/cortex-a53.md: Update with new attributes. * config/arm/cortex-a7.md: Update with new attributes. * config/arm/cortex-a8-neon.md: Update with new attributes. * config/arm/cortex-a9.md: Update with new attributes. * config/arm/cortex-m4-fpu.md: Update with new attributes. * config/arm/cortex-r4f.md: Update with new attributes. * config/arm/marvell-pj4.md: Update with new attributes. * config/arm/vfp11.md: Update with new attributes. 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com> * config/arm/types.md (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f. * config/aarch64/aarch64.md (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with new attributes. (fix_trunc<GPF:mode><GPI:mode>2): Likewise. (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise. (float<GPI:mode><GPF:mode>2): Likewise. * config/arm/vfp.md (*truncsisf2_vfp): Update with new attributes. (*truncsidf2_vfp): Likewise. (fixuns_truncsfsi2): Likewise. (fixuns_truncdfsi2): Likewise. (*floatsisf2_vfp): Likewise. (*floatsidf2_vfp): Likewise. (floatunssisf2): Likewise. (floatunssidf2): Likewise. (*combine_vcvt_f32_<FCVTI32typename>): Likewise. (*combine_vcvt_f64_<FCVTI32typename>): Likewise. * config/arm/arm1020e.md: Update with new attributes. * config/arm/cortex-a15-neon.md: Update with new attributes. * config/arm/cortex-a5.md: Update with new attributes. * config/arm/cortex-a53.md: Update with new attributes. * config/arm/cortex-a7.md: Update with new attributes. * config/arm/cortex-a8-neon.md: Update with new attributes. * config/arm/cortex-a9.md: Update with new attributes. * config/arm/cortex-m4-fpu.md: Update with new attributes. * config/arm/cortex-r4f.md: Update with new attributes. * config/arm/marvell-pj4.md: Update with new attributes. * config/arm/vfp11.md: Update with new attributes. 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com> * config/aarch64/arm_neon.h (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type. (vqtbx<1,2,3,4><q>_s8): Likewise. 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com> * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types. * config/arm/arm-fixed.md: Add type attribute to all insn patterns. (add<mode>3): Add type attribute. (add<mode>3): Likewise. (usadd<mode>3): Likewise. (ssadd<mode>3): Likewise. (sub<mode>3): Likewise. (sub<mode>3): Likewise. (ussub<mode>3): Likewise. (sssub<mode>3): Likewise. (ssmulsa3): Likewise. (usmulusa3): Likewise. (arm_usatsihi): Likewise. * config/arm/vfp.md (*movdi_vfp): Add types for all instructions. (*movdi_vfp_cortexa8): Likewise. (*movhf_vfp_neon): Likewise. (*movhf_vfp): Likewise. (*movdf_vfp): Likewise. (*thumb2_movdf_vfp): Likewise. (*thumb2_movdfcc_vfp): Likewise. * config/arm/arm.md: Add type attribute to all insn patterns. (*thumb1_adddi3): Add type attribute. (*arm_adddi3): Likewise. (*adddi_sesidi_di): Likewise. (*adddi_zesidi_di): Likewise. (*thumb1_addsi3): Likewise. (addsi3_compare0): Likewise. (*addsi3_compare0_scratch): Likewise. (*compare_negsi_si): Likewise. (cmpsi2_addneg): Likewise. (*addsi3_carryin_<optab>): Likewise. (*addsi3_carryin_alt2_<optab>): Likewise. (*addsi3_carryin_clobercc_<optab>): Likewise. (*subsi3_carryin): Likewise. (*subsi3_carryin_const): Likewise. (*subsi3_carryin_compare): Likewise. (*subsi3_carryin_compare_const): Likewise. (*arm_subdi3): Likewise. (*thumb_subdi3): Likewise. (*subdi_di_zesidi): Likewise. (*subdi_di_sesidi): Likewise. (*subdi_zesidi_di): Likewise. (*subdi_sesidi_di): Likewise. (*subdi_zesidi_ze): Likewise. (thumb1_subsi3_insn): Likewise. (*arm_subsi3_insn): Likewise. (*anddi3_insn): Likewise. (*anddi_zesidi_di): Likewise. (*anddi_sesdi_di): Likewise. (*ne_zeroextracts): Likewise. (*ne_zeroextracts): Likewise. (*ite_ne_zeroextr): Likewise. (*ite_ne_zeroextr): Likewise. (*anddi_notdi_di): Likewise. (*anddi_notzesidi): Likewise. (*anddi_notsesidi): Likewise. (andsi_notsi_si): Likewise. (thumb1_bicsi3): Likewise. (*iordi3_insn): Likewise. (*iordi_zesidi_di): Likewise. (*iordi_sesidi_di): Likewise. (*thumb1_iorsi3_insn): Likewise. (*xordi3_insn): Likewise. (*xordi_zesidi_di): Likewise. (*xordi_sesidi_di): Likewise. (*arm_xorsi3): Likewise. (*andsi_iorsi3_no): Likewise. (*smax_0): Likewise. (*smax_m1): Likewise. (*arm_smax_insn): Likewise. (*smin_0): Likewise. (*arm_smin_insn): Likewise. (*arm_umaxsi3): Likewise. (*arm_uminsi3): Likewise. (*minmax_arithsi): Likewise. (*minmax_arithsi_): Likewise. (*satsi_<SAT:code>): Likewise. (arm_ashldi3_1bit): Likewise. (arm_ashrdi3_1bit): Likewise. (arm_lshrdi3_1bit): Likewise. (*arm_negdi2): Likewise. (*thumb1_negdi2): Likewise. (*arm_negsi2): Likewise. (*thumb1_negsi2): Likewise. (*negdi_extendsid): Likewise. (*negdi_zero_extend): Likewise. (*arm_abssi2): Likewise. (*thumb1_abssi2): Likewise. (*arm_neg_abssi2): Likewise. (*thumb1_neg_abss): Likewise. (one_cmpldi2): Likewise. (extend<mode>di2): Likewise. (*compareqi_eq0): Likewise. (*arm_extendhisi2addsi): Likewise. (*arm_movdi): Likewise. (*thumb1_movdi_insn): Likewise. (*arm_movt): Likewise. (*thumb1_movsi_insn): Likewise. (pic_add_dot_plus_four): Likewise. (pic_add_dot_plus_eight): Likewise. (tls_load_dot_plus_eight): Likewise. (*thumb1_movhi_insn): Likewise. (*thumb1_movsf_insn): Likewise. (*movdf_soft_insn): Likewise. (*thumb_movdf_insn): Likewise. (cbranchsi4_insn): Likewise. (cbranchsi4_scratch): Likewise. (*negated_cbranchsi4): Likewise. (*tbit_cbranch): Likewise. (*tlobits_cbranch): Likewise. (*tstsi3_cbranch): Likewise. (*cbranchne_decr1): Likewise. (*addsi3_cbranch): Likewise. (*addsi3_cbranch_scratch): Likewise. (*arm_cmpdi_insn): Likewise. (*arm_cmpdi_unsig): Likewise. (*arm_cmpdi_zero): Likewise. (*thumb_cmpdi_zero): Likewise. (*deleted_compare): Likewise. (*mov_scc): Likewise. (*mov_negscc): Likewise. (*mov_notscc): Likewise. (*cstoresi_eq0_thumb1_insn): Likewise. (cstoresi_nltu_thumb1): Likewise. (cstoresi_ltu_thu): Likewise. (thumb1_addsi3_addgeu): Likewise. (*arm_jump): Likewise. (*thumb_jump): Likewise. (*check_arch2): Likewise. (arm_casesi_internal): Likewise. (thumb1_casesi_dispatch): Likewise. (*arm_indirect_jump): Likewise. (*thumb1_indirect_jump): Likewise. (nop): Likewise. (*and_scc): Likewise. (*ior_scc): Likewise. (*compare_scc): Likewise. (*cond_move): Likewise. (*cond_arith): Likewise. (*cond_sub): Likewise. (*cmp_ite0): Likewise. (*cmp_ite1): Likewise. (*cmp_and): Likewise. (*cmp_ior): Likewise. (*ior_scc_scc): Likewise. (*ior_scc_scc_cmp): Likewise. (*and_scc_scc): Likewise. (*and_scc_scc_cmp): Likewise. (*and_scc_scc_nod): Likewise. (*negscc): Likewise. (movcond_addsi): Likewise. (movcond): Likewise. (*ifcompare_plus_move): Likewise. (*if_plus_move): Likewise. (*ifcompare_move_plus): Likewise. (*if_move_plus): Likewise. (*ifcompare_arith_arith): Likewise. (*if_arith_arith): Likewise. (*ifcompare_arith_move): Likewise. (*if_arith_move): Likewise. (*ifcompare_move_arith): Likewise. (*if_move_arith): Likewise. (*ifcompare_move_not): Likewise. (*if_move_not): Likewise. (*ifcompare_not_move): Likewise. (*if_not_move): Likewise. (*ifcompare_shift_move): Likewise. (*if_shift_move): Likewise. (*ifcompare_move_shift): Likewise. (*if_move_shift): Likewise. (*ifcompare_shift_shift): Likewise. (*ifcompare_not_arith): Likewise. (*ifcompare_arith_not): Likewise. (*if_arith_not): Likewise. (*ifcompare_neg_move): Likewise. (*if_neg_move): Likewise. (*ifcompare_move_neg): Likewise. (*if_move_neg): Likewise. (prologue_thumb1_interwork): Likewise. (*cond_move_not): Likewise. (*sign_extract_onebit): Likewise. (*not_signextract_onebit): Likewise. (stack_tie): Likewise. (align_4): Likewise. (align_8): Likewise. (consttable_end): Likewise. (consttable_1): Likewise. (consttable_2): Likewise. (consttable_4): Likewise. (consttable_8): Likewise. (consttable_16): Likewise. (*thumb1_tablejump): Likewise. (prefetch): Likewise. (force_register_use): Likewise. (thumb_eh_return): Likewise. (load_tp_hard): Likewise. (load_tp_soft): Likewise. (tlscall): Likewise. (*arm_movtas_ze): Likewise. (*arm_rev): Likewise. (*arm_revsh): Likewise. (*arm_rev16): Likewise. * config/arm/thumb2.md (*thumb2_smaxsi3): Likewise. (*thumb2_sminsi3): Likewise. (*thumb32_umaxsi3): Likewise. (*thumb2_uminsi3): Likewise. (*thumb2_negdi2): Likewise. (*thumb2_abssi2): Likewise. (*thumb2_neg_abss): Likewise. (*thumb2_movsi_insn): Likewise. (tls_load_dot_plus_four): Likewise. (*thumb2_movhi_insn): Likewise. (*thumb2_mov_scc): Likewise. (*thumb2_mov_negs): Likewise. (*thumb2_mov_negs): Likewise. (*thumb2_mov_nots): Likewise. (*thumb2_mov_nots): Likewise. (*thumb2_movsicc_): Likewise. (*thumb2_movsfcc_soft_insn): Likewise. (*thumb2_indirect_jump): Likewise. (*thumb2_and_scc): Likewise. (*thumb2_ior_scc): Likewise. (*thumb2_ior_scc_strict_it): Likewise. (*thumb2_cond_move): Likewise. (*thumb2_cond_arith): Likewise. (*thumb2_cond_ari): Likewise. (*thumb2_cond_sub): Likewise. (*thumb2_negscc): Likewise. (*thumb2_movcond): Likewise. (thumb2_casesi_internal): Likewise. (thumb2_casesi_internal_pic): Likewise. (*thumb2_alusi3_short): Likewise. (*thumb2_mov<mode>_shortim): Likewise. (*thumb2_addsi_short): Likewise. (*thumb2_subsi_short): Likewise. (thumb2_addsi3_compare0): Likewise. (*thumb2_cbz): Likewise. (*thumb2_cbnz): Likewise. (*thumb2_one_cmplsi2_short): Likewise. (*thumb2_negsi2_short): Likewise. (*orsi_notsi_si): Likewise. * config/arm/arm1020e.md: Update with new attributes. * config/arm/arm1026ejs.md: Update with new attributes. * config/arm/arm1136jfs.md: Update with new attributes. * config/arm/arm926ejs.md: Update with new attributes. * config/arm/cortex-a15.md: Update with new attributes. * config/arm/cortex-a5.md: Update with new attributes. * config/arm/cortex-a53.md: Update with new attributes. * config/arm/cortex-a7.md: Update with new attributes. * config/arm/cortex-a8.md: Update with new attributes. * config/arm/cortex-a9.md: Update with new attributes. * config/arm/cortex-m4.md: Update with new attributes. * config/arm/cortex-r4.md: Update with new attributes. * config/arm/fa526.md: Update with new attributes. * config/arm/fa606te.md: Update with new attributes. * config/arm/fa626te.md: Update with new attributes. * config/arm/fa726te.md: Update with new attributes. 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com> * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use <vwx> iterator to ensure correct register choice. (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise. (aarch64_sqdmull_n<mode>): Likewise. (aarch64_sqdmull2_n<mode>_internal): Likewise. * config/aarch64/arm_neon.h (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector. (vml<as><q>_n_<su>16): Likewise. (vml<as>l_high_lane<q>_<su>16): Likewise. (vml<as>l_high_n_<su>16): Likewise. (vml<as>l_lane<q>_<su>16): Likewise. (vml<as>l_n_<su>16): Likewise. (vmul<q>_lane<q>_<su>16): Likewise. (vmul<q>_n_<su>16): Likewise. (vmull_lane<q>_<su>16): Likewise. (vmull_n_<su>16): Likewise. (vmull_high_lane<q>_<su>16): Likewise. (vmull_high_n_<su>16): Likewise. (vqrdmulh<q>_n_s16): Likewise. 2013-09-06 Tejas Belagod <tejas.belagod@arm.com> * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to have the correct lane parameter. 2013-09-06 Richard Biener <rguenther@suse.de> * cfganal.c (control_dependences::~control_dependences): Properly free all of the vector. 2013-09-06 Kirill Yukhin <kirill.yukhin@intel.com> PR target/58269 * config/i386/i386.c (ix86_conditional_register_usage): Proper initialize extended SSE registers. 2013-09-06 Jan Hubicka <jh@suse.cz> PR tree-optimization/58311 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing. 2013-09-06 Jan Hubicka <jh@suse.cz> * Makefile.in (tree-sra.o): Update dependencies. * tree-sra.c: Include ipa-utils.h (scan_function): Use recursive_call_p. (has_caller_p): New function. (cgraph_for_node_and_aliases): Count also callers of aliases. 2013-09-06 Jan Hubicka <jh@suse.cz> PR middle-end/58094 * cgraph.h (symtab_semantically_equivalent_p): Declare. * tree-tailcall.c: Include ipa-utils.h. (find_tail_calls): Use it. * ipa-pure-const.c (check_call): Likewise. * ipa-utils.c (recursive_call_p): New function. * ipa-utils.h (recursive_call_p): Dclare. * symtab.c (symtab_nonoverwritable_alias): Fix formatting. (symtab_semantically_equivalent_p): New function. * Makefile.in (tree-tailcall.o): Update dependencies. 2013-09-06 Eric Botcazou <ebotcazou@adacore.com> * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the non-inlinable part. 2013-09-06 Richard Biener <rguenther@suse.de> * lto-streamer.h (lto_global_var_decls): Remove. * Makefile.in (OBJS): Remove lto-symtab.o. (lto-symtab.o): Remove. (GTFILES): Remove lto-symtab.c * lto-symtab.c: Move to lto/ 2013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC) (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT) (UNSPEC_FPINT_RINT): New constant definitions. (FPINT, fpint_name, fpint_roundingmode): New integer iterator definition with 2 attributes. ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2") ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern definitions. 2013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute. ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later. Set the mnemonic attribute to "bcr_flush". Set the "z196prop" attribute to "z196_alone". * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and "zEC12_simple". 2013-09-06 Richard Biener <rguenther@suse.de> * basic-block.h (class control_dependences): New. * tree-ssa-dce.c (control_dependence_map): Remove. (cd): New global. (EXECUTE_IF_CONTROL_DEPENDENT): Remove. (set_control_dependence_map_bit, clear_control_dependence_bitmap, find_pdom, find_control_dependence, find_all_control_dependences): Move to cfganal.c. (mark_control_dependent_edges_necessary, find_obviously_necessary_stmts, propagate_necessity, tree_dce_init, tree_dce_done, perform_tree_ssa_dce): Adjust. * cfganal.c (set_control_dependence_map_bit, clear_control_dependence_bitmap, find_pdom, find_control_dependence, find_all_control_dependences): Move from tree-ssa-dce.c and implement as methods of control_dependences class. (control_dependences::control_dependences): New. (control_dependences::~control_dependences): Likewise. (control_dependences::get_edges_dependent_on): Likewise. (control_dependences::get_edge): Likewise. 2013-09-04 Jan Hubicka <jh@suse.cz> * tree.c (types_same_for_odr): Drop overactive check. * ipa-devirt.c (hash_type_name): Likewise. 2013-09-04 Jan Hubicka <jh@suse.cz> * cgraphunit.c (walk_polymorphic_call_targets): Break out from ... (analyze_functions): ... here. 2013-09-04 Jan Hubicka <jh@suse.cz> PR middle-end/58201 * cgraphunit.c (analyze_functions): Clear AUX fields after processing; initialize assembler name has. 2013-09-05 Jeff Law <law@redhat.com> * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed from thread_around_empty_block. Record threading path into PATH. Recurse if threading through the initial block is successful. (thread_across_edge): Corresponding changes to slightly simplify. 2013-09-05 James Greenhalgh <james.greenhalgh@arm.com> * config/aarch64/aarch64.md (type): Remove frecpe, frecps, frecpx. (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md, fix to be a TARGET_SIMD instruction. (aarch64_frecps): Remove. * config/aarch64/aarch64-simd.md (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md (aarch64_frecps<mode>): Handle all float/vector of float modes. 2013-09-05 James Greenhalgh <james.greenhalgh@arm.com> Sofiane Naci <sofiane.naci@arm.com> * config/arm/types.md (define_attr "type"): Expand "arlo_imm" into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm". Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm", "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel", "log…
bluecmd
pushed a commit
to bluecmd/or1k-gcc
that referenced
this pull request
Jul 21, 2014
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/wide-int@205376 138bc75d-0d04-0410-961f-82ee72b054a4
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This patch will switch the default to use DWARF2 unwinding and exception handling instead of the old setjmp / longjmp.
I have tested both manual stack unwinding using _Unwind_Backtrace and all kinds of different C++ exceptions I can think of.
To support exceptions through signal handlers one need to add linux-unwind.h like other architectures, but I couldn't find any use except in java so I chose to leave it as a TODO.
I suggest building GCC with --disable-sjlj-exceptions but it should not matter.
For this patch to work, please checkout my pull request related to CFI in or1k-src as well.
ChangeLog:
(TARGET_EXCEPT_UNWIND_INFO) define.
(or1k_except_unwind_info) use DWARF2 unwind info as default
but support SJLJ if forced with --enable-sjlj-exceptions.
config/or1k/or1k-protos.h:
(or1k_expand_pic_symbol_ref) removed unneeded ATTRIBUTE_UNUSED.
(or1k_eh_return_handler_rtx) defined prototype (body in or1k.c).
(or1k_return_addr_rtx) defined prototype (body in or1k.c).
config/or1k/or1k.c:
(or1k_save_reg_p) save stack pointer when frame pointer is not saved.
(or1k_save_reg_p) save registers used with eh_return.
(or1k_expand_epilogue) do not restore link register if we are
returning from eh_return.
(or1k_expand_epilogue) apply EH stack adjustment to stack pointer.
(or1k_eh_return_handler_rtx) eh_return should write to the link register.
(or1k_return_addr_rtx) in the case of GOT the link register cannot be read
after the prologue. in this case, use the stored link register from the
stack frame.
(or1k_frame_pointer_required) require FP in eh_return and
when alloca is used.
(TARGET_FRAME_POINTER_REQUIRED) define.
config/or1k/or1k.h:
(INITIAL_FRAME_POINTER_OFFSET) not used, removed.
(RETURN_ADDR_RTX) define.
(EH_RETURN_REGNUM) define. use reg 23.
(EH_RETURN_DATA_REGNO) define. use reg 25, 27, 29 and 31.
(EH_RETURN_STACKADJ_RTX) define.
(EH_RETURN_HANDLER_RTX) define.